﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Messaging;
using System.Net.Mail;

namespace PortalMainService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "ConsultasColas" in code, svc and config file together.
    public class ConsultasColas : IConsultasColas
    {
        public string DoWork()
        {
            string rutaCola = @".\private$\Correos2";
            if (!MessageQueue.Exists(rutaCola))
                MessageQueue.Create(rutaCola);
            MessageQueue cola = new MessageQueue(rutaCola);
            cola.Formatter = new XmlMessageFormatter(new Type[] { typeof(PortalMainService.Dominio.Consultamail) });
            try
            {
                Message mensaje = cola.Receive();


                PortalMainService.Dominio.Consultamail consulta = (PortalMainService.Dominio.Consultamail)mensaje.Body;
                string correo = consulta.correo;
                String mensaje2 = consulta.Mensaje;



                SmtpClient smtp = new SmtpClient();
                //smtp.Host = "192.168.1.90";
                smtp.Port = 25;//El puerto debe ser correctamente configurado.
                //smtp.Timeout = 250;//Tiempo de conexión
                smtp.Host = "smtp.gmail.com";
                smtp.EnableSsl = true;
                smtp.Credentials =
                    new System.Net.NetworkCredential
                    {
                        UserName = "slideshowdsd",//Nombre de usuario de correo
                        Password = "slideshow2012"//password
                    };


                //Objeto referente a quién envía el correo
                MailAddress from = new MailAddress(
                        correo,//Dirección
                        "ALUMNOS",//Nombre asociado a la dirección
                        System.Text.Encoding.UTF8
                        );

                string correos = "slideshowdsd@gmail.com";
                var mails = correos.Split(';');


                using (MailMessage message = new MailMessage())
                {


                    message.From = from;
                    //message.Sender = to;
                    message.Subject = correo;
                    //Cargamos el contenido del mail.
                    message.Body = mensaje2;
                    message.Priority = MailPriority.Normal;

                    //Cargamos todos los mails que se ingresaron
                    //en el campor de text
                    foreach (string dir in mails)
                        message.To.Add(dir);
                    try
                    {
                        //Se envía el mail
                        smtp.Send(message);
                        return "Correo enviado";
                    }
                    catch (SmtpException ex)
                    {
                        return ex.Message;
                    }
                    catch (Exception)
                    {
                        return "Error";
                    }
                }
             }
            catch (Exception)
            {
                return "Error";
            }

        }


    }
}
